package com.irdstudio.efp.console.service.vo;

import java.math.BigDecimal;
import java.util.List;

/**
 * 需求编号:2019D08--
 * 问题编号:
 * 开发人员: caoxin
 * 创建日期:2019/12/5
 * 功能描述:
 * 修改日期:2019/12/5
 * 修改描述:
 */
public final class PrdInfoVOBuilder {
    private String prdId;
    private String prdCode;
    private String prdVersion;
    private int page;
    private int size;
    private String legalOrgCode;
    private int total;
    private String loginUserId;
    private String legalOrgCodeName;
    private String loginUserOrgCode;
    private String prdFilDir;
    private String loginUserLeageOrgCode;
    private String prdSelDir;
    private String loginUserOrgLocation;
    private String prdCodebyBaseInfo;
    private String prdThlDri;
    private String prdName;
    private BigDecimal prdCoefficient;
    private String prdDesc;
    private String effictiveDate;
    private String expiryDate;
    private BigDecimal crdAprvMinAmt;
    private BigDecimal crdAprvMaxAmt;
    private BigDecimal loanAppMinAmt;
    private BigDecimal loanAppMaxAmt;
    private BigDecimal loanMaxAmtBalance;
    private String cyclicWay;
    private String creditTerm;
    private String repayWay;
    private String inteDay;
    private String repayDay;
    private BigDecimal overdueInteUpRat;
    private BigDecimal embeInteUpRatio;
    private String loanUseType;
    private String allowAmount;
    private String wheAgr;
    private int lmtTerm;
    private String contTemplateId;
    private String modContFormId;
    private String creditFormId;
    private String rateSchemeId;
    private String eleNucFormId;
    private String crdApprFlowId;
    private String crdMeaMedolId;
    private String amtApprFlowId;
    private String amtMeaMedolId;
    private String createTime;
    private String createUser;
    private String userName;
    private String lastUpdateUser;
    private String lastUpdateTime;
    private String guarWay;
    private String prdSort;
    private String prdStatus;
    private String currencyOpt;
    private String creditTermUnit;
    private int repayCycle;
    private String overdueDefInte;
    private String embeDefInte;
    private String loanUseGenere;
    private String lmtTermUnit;
    private String rateAdjustType;
    private String repayCycleType;
    private String repayDayType;
    private String isAlongLoan;
    private String isUpload;
    private RateSchemeDetailVO rateSchemeDetail;
    private List<ContTempInfoVO> listContTempInfo;
    private List<RateSchemeDetailVO> listRateSchemeDetail;
    private List<TelVerifGrpDtlVO> listTelVerifGrpDtl;
    private List<TelVerifTplVO> listTelVerifTplVO;
    private List<PrdRuleRelVO> listPrdRuleRelVO;
    private String contTemplateName;
    private String rateSchemeName;
    private String eleNucFormName;
    private String crdApprFlowName;
    private String crdMeaMedolName;
    private String orgCode;
    private BigDecimal limitAmt;
    private String loanSort;
    private String prdType;
    private String minLoanTerm;
    private String maxLoanTerm;
    private BigDecimal loanIntRate;
    private String payWay;
    private String zxOpId;
    private String cooprCode;
    private String cooprName;
    private String caseCode;//专案代码
    private String caseName;//专案名称
    private String operateAgency;
    private String loanCate;
    private BigDecimal minLoanRate;
    private BigDecimal maxLoanRate;

    private PrdInfoVOBuilder() {
    }

    public static PrdInfoVOBuilder aPrdInfoVO() {
        return new PrdInfoVOBuilder();
    }

    public PrdInfoVOBuilder withPrdId(String prdId) {
        this.prdId = prdId;
        return this;
    }

    public PrdInfoVOBuilder withPrdCode(String prdCode) {
        this.prdCode = prdCode;
        return this;
    }

    public PrdInfoVOBuilder withPrdVersion(String prdVersion) {
        this.prdVersion = prdVersion;
        return this;
    }

    public PrdInfoVOBuilder withPage(int page) {
        this.page = page;
        return this;
    }

    public PrdInfoVOBuilder withSize(int size) {
        this.size = size;
        return this;
    }

    public PrdInfoVOBuilder withLegalOrgCode(String legalOrgCode) {
        this.legalOrgCode = legalOrgCode;
        return this;
    }

    public PrdInfoVOBuilder withTotal(int total) {
        this.total = total;
        return this;
    }

    public PrdInfoVOBuilder withLoginUserId(String loginUserId) {
        this.loginUserId = loginUserId;
        return this;
    }

    public PrdInfoVOBuilder withLegalOrgCodeName(String legalOrgCodeName) {
        this.legalOrgCodeName = legalOrgCodeName;
        return this;
    }

    public PrdInfoVOBuilder withLoginUserOrgCode(String loginUserOrgCode) {
        this.loginUserOrgCode = loginUserOrgCode;
        return this;
    }

    public PrdInfoVOBuilder withPrdFilDir(String prdFilDir) {
        this.prdFilDir = prdFilDir;
        return this;
    }

    public PrdInfoVOBuilder withLoginUserLeageOrgCode(String loginUserLeageOrgCode) {
        this.loginUserLeageOrgCode = loginUserLeageOrgCode;
        return this;
    }

    public PrdInfoVOBuilder withPrdSelDir(String prdSelDir) {
        this.prdSelDir = prdSelDir;
        return this;
    }

    public PrdInfoVOBuilder withLoginUserOrgLocation(String loginUserOrgLocation) {
        this.loginUserOrgLocation = loginUserOrgLocation;
        return this;
    }

    public PrdInfoVOBuilder withPrdCodebyBaseInfo(String prdCodebyBaseInfo) {
        this.prdCodebyBaseInfo = prdCodebyBaseInfo;
        return this;
    }

    public PrdInfoVOBuilder withPrdThlDri(String prdThlDri) {
        this.prdThlDri = prdThlDri;
        return this;
    }

    public PrdInfoVOBuilder withPrdName(String prdName) {
        this.prdName = prdName;
        return this;
    }

    public PrdInfoVOBuilder withPrdCoefficient(BigDecimal prdCoefficient) {
        this.prdCoefficient = prdCoefficient;
        return this;
    }

    public PrdInfoVOBuilder withPrdDesc(String prdDesc) {
        this.prdDesc = prdDesc;
        return this;
    }

    public PrdInfoVOBuilder withEffictiveDate(String effictiveDate) {
        this.effictiveDate = effictiveDate;
        return this;
    }

    public PrdInfoVOBuilder withExpiryDate(String expiryDate) {
        this.expiryDate = expiryDate;
        return this;
    }

    public PrdInfoVOBuilder withCrdAprvMinAmt(BigDecimal crdAprvMinAmt) {
        this.crdAprvMinAmt = crdAprvMinAmt;
        return this;
    }

    public PrdInfoVOBuilder withCrdAprvMaxAmt(BigDecimal crdAprvMaxAmt) {
        this.crdAprvMaxAmt = crdAprvMaxAmt;
        return this;
    }

    public PrdInfoVOBuilder withLoanAppMinAmt(BigDecimal loanAppMinAmt) {
        this.loanAppMinAmt = loanAppMinAmt;
        return this;
    }

    public PrdInfoVOBuilder withLoanAppMaxAmt(BigDecimal loanAppMaxAmt) {
        this.loanAppMaxAmt = loanAppMaxAmt;
        return this;
    }

    public PrdInfoVOBuilder withLoanMaxAmtBalance(BigDecimal loanMaxAmtBalance) {
        this.loanMaxAmtBalance = loanMaxAmtBalance;
        return this;
    }

    public PrdInfoVOBuilder withCyclicWay(String cyclicWay) {
        this.cyclicWay = cyclicWay;
        return this;
    }

    public PrdInfoVOBuilder withCreditTerm(String creditTerm) {
        this.creditTerm = creditTerm;
        return this;
    }

    public PrdInfoVOBuilder withRepayWay(String repayWay) {
        this.repayWay = repayWay;
        return this;
    }

    public PrdInfoVOBuilder withInteDay(String inteDay) {
        this.inteDay = inteDay;
        return this;
    }

    public PrdInfoVOBuilder withRepayDay(String repayDay) {
        this.repayDay = repayDay;
        return this;
    }

    public PrdInfoVOBuilder withOverdueInteUpRat(BigDecimal overdueInteUpRat) {
        this.overdueInteUpRat = overdueInteUpRat;
        return this;
    }

    public PrdInfoVOBuilder withEmbeInteUpRatio(BigDecimal embeInteUpRatio) {
        this.embeInteUpRatio = embeInteUpRatio;
        return this;
    }

    public PrdInfoVOBuilder withLoanUseType(String loanUseType) {
        this.loanUseType = loanUseType;
        return this;
    }

    public PrdInfoVOBuilder withAllowAmount(String allowAmount) {
        this.allowAmount = allowAmount;
        return this;
    }

    public PrdInfoVOBuilder withWheAgr(String wheAgr) {
        this.wheAgr = wheAgr;
        return this;
    }

    public PrdInfoVOBuilder withLmtTerm(int lmtTerm) {
        this.lmtTerm = lmtTerm;
        return this;
    }

    public PrdInfoVOBuilder withContTemplateId(String contTemplateId) {
        this.contTemplateId = contTemplateId;
        return this;
    }

    public PrdInfoVOBuilder withModContFormId(String modContFormId) {
        this.modContFormId = modContFormId;
        return this;
    }

    public PrdInfoVOBuilder withCreditFormId(String creditFormId) {
        this.creditFormId = creditFormId;
        return this;
    }

    public PrdInfoVOBuilder withRateSchemeId(String rateSchemeId) {
        this.rateSchemeId = rateSchemeId;
        return this;
    }

    public PrdInfoVOBuilder withEleNucFormId(String eleNucFormId) {
        this.eleNucFormId = eleNucFormId;
        return this;
    }

    public PrdInfoVOBuilder withCrdApprFlowId(String crdApprFlowId) {
        this.crdApprFlowId = crdApprFlowId;
        return this;
    }

    public PrdInfoVOBuilder withCrdMeaMedolId(String crdMeaMedolId) {
        this.crdMeaMedolId = crdMeaMedolId;
        return this;
    }

    public PrdInfoVOBuilder withAmtApprFlowId(String amtApprFlowId) {
        this.amtApprFlowId = amtApprFlowId;
        return this;
    }

    public PrdInfoVOBuilder withAmtMeaMedolId(String amtMeaMedolId) {
        this.amtMeaMedolId = amtMeaMedolId;
        return this;
    }

    public PrdInfoVOBuilder withCreateTime(String createTime) {
        this.createTime = createTime;
        return this;
    }

    public PrdInfoVOBuilder withCreateUser(String createUser) {
        this.createUser = createUser;
        return this;
    }

    public PrdInfoVOBuilder withUserName(String userName) {
        this.userName = userName;
        return this;
    }

    public PrdInfoVOBuilder withLastUpdateUser(String lastUpdateUser) {
        this.lastUpdateUser = lastUpdateUser;
        return this;
    }

    public PrdInfoVOBuilder withLastUpdateTime(String lastUpdateTime) {
        this.lastUpdateTime = lastUpdateTime;
        return this;
    }

    public PrdInfoVOBuilder withGuarWay(String guarWay) {
        this.guarWay = guarWay;
        return this;
    }

    public PrdInfoVOBuilder withPrdSort(String prdSort) {
        this.prdSort = prdSort;
        return this;
    }

    public PrdInfoVOBuilder withPrdStatus(String prdStatus) {
        this.prdStatus = prdStatus;
        return this;
    }

    public PrdInfoVOBuilder withCurrencyOpt(String currencyOpt) {
        this.currencyOpt = currencyOpt;
        return this;
    }

    public PrdInfoVOBuilder withCreditTermUnit(String creditTermUnit) {
        this.creditTermUnit = creditTermUnit;
        return this;
    }

    public PrdInfoVOBuilder withRepayCycle(int repayCycle) {
        this.repayCycle = repayCycle;
        return this;
    }

    public PrdInfoVOBuilder withOverdueDefInte(String overdueDefInte) {
        this.overdueDefInte = overdueDefInte;
        return this;
    }

    public PrdInfoVOBuilder withEmbeDefInte(String embeDefInte) {
        this.embeDefInte = embeDefInte;
        return this;
    }

    public PrdInfoVOBuilder withLoanUseGenere(String loanUseGenere) {
        this.loanUseGenere = loanUseGenere;
        return this;
    }

    public PrdInfoVOBuilder withLmtTermUnit(String lmtTermUnit) {
        this.lmtTermUnit = lmtTermUnit;
        return this;
    }

    public PrdInfoVOBuilder withRateAdjustType(String rateAdjustType) {
        this.rateAdjustType = rateAdjustType;
        return this;
    }

    public PrdInfoVOBuilder withRepayCycleType(String repayCycleType) {
        this.repayCycleType = repayCycleType;
        return this;
    }

    public PrdInfoVOBuilder withRepayDayType(String repayDayType) {
        this.repayDayType = repayDayType;
        return this;
    }

    public PrdInfoVOBuilder withIsAlongLoan(String isAlongLoan) {
        this.isAlongLoan = isAlongLoan;
        return this;
    }

    public PrdInfoVOBuilder withIsUpload(String isUpload) {
        this.isUpload = isUpload;
        return this;
    }

    public PrdInfoVOBuilder withRateSchemeDetail(RateSchemeDetailVO rateSchemeDetail) {
        this.rateSchemeDetail = rateSchemeDetail;
        return this;
    }

    public PrdInfoVOBuilder withListContTempInfo(List<ContTempInfoVO> listContTempInfo) {
        this.listContTempInfo = listContTempInfo;
        return this;
    }

    public PrdInfoVOBuilder withListRateSchemeDetail(List<RateSchemeDetailVO> listRateSchemeDetail) {
        this.listRateSchemeDetail = listRateSchemeDetail;
        return this;
    }

    public PrdInfoVOBuilder withListTelVerifGrpDtl(List<TelVerifGrpDtlVO> listTelVerifGrpDtl) {
        this.listTelVerifGrpDtl = listTelVerifGrpDtl;
        return this;
    }

    public PrdInfoVOBuilder withListTelVerifTplVO(List<TelVerifTplVO> listTelVerifTplVO) {
        this.listTelVerifTplVO = listTelVerifTplVO;
        return this;
    }

    public PrdInfoVOBuilder withListPrdRuleRelVO(List<PrdRuleRelVO> listPrdRuleRelVO) {
        this.listPrdRuleRelVO = listPrdRuleRelVO;
        return this;
    }

    public PrdInfoVOBuilder withContTemplateName(String contTemplateName) {
        this.contTemplateName = contTemplateName;
        return this;
    }

    public PrdInfoVOBuilder withRateSchemeName(String rateSchemeName) {
        this.rateSchemeName = rateSchemeName;
        return this;
    }

    public PrdInfoVOBuilder withEleNucFormName(String eleNucFormName) {
        this.eleNucFormName = eleNucFormName;
        return this;
    }

    public PrdInfoVOBuilder withCrdApprFlowName(String crdApprFlowName) {
        this.crdApprFlowName = crdApprFlowName;
        return this;
    }

    public PrdInfoVOBuilder withCrdMeaMedolName(String crdMeaMedolName) {
        this.crdMeaMedolName = crdMeaMedolName;
        return this;
    }

    public PrdInfoVOBuilder withOrgCode(String orgCode) {
        this.orgCode = orgCode;
        return this;
    }

    public PrdInfoVOBuilder withLimitAmt(BigDecimal limitAmt) {
        this.limitAmt = limitAmt;
        return this;
    }

    public PrdInfoVOBuilder withLoanSort(String loanSort) {
        this.loanSort = loanSort;
        return this;
    }

    public PrdInfoVOBuilder withPrdType(String prdType) {
        this.prdType = prdType;
        return this;
    }

    public PrdInfoVOBuilder withMinLoanTerm(String minLoanTerm) {
        this.minLoanTerm = minLoanTerm;
        return this;
    }

    public PrdInfoVOBuilder withMaxLoanTerm(String maxLoanTerm) {
        this.maxLoanTerm = maxLoanTerm;
        return this;
    }

    public PrdInfoVOBuilder withLoanIntRate(BigDecimal loanIntRate) {
        this.loanIntRate = loanIntRate;
        return this;
    }

    public PrdInfoVOBuilder withPayWay(String payWay) {
        this.payWay = payWay;
        return this;
    }

    public PrdInfoVOBuilder withZxOpId(String zxOpId) {
        this.zxOpId = zxOpId;
        return this;
    }

    public PrdInfoVOBuilder withCooprCode(String cooprCode) {
        this.cooprCode = cooprCode;
        return this;
    }

    public PrdInfoVOBuilder withCooprName(String cooprName) {
        this.cooprName = cooprName;
        return this;
    }

    public PrdInfoVOBuilder withCaseCode(String caseCode) {
        this.caseCode = caseCode;
        return this;
    }

    public PrdInfoVOBuilder withCaseName(String caseName) {
        this.caseName = caseName;
        return this;
    }

    public PrdInfoVOBuilder withOperateAgency(String operateAgency) {
        this.operateAgency = operateAgency;
        return this;
    }

    public PrdInfoVOBuilder withLoanCate(String loanCate) {
        this.loanCate = loanCate;
        return this;
    }

    public PrdInfoVOBuilder withMinLoanRate(BigDecimal minLoanRate) {
        this.minLoanRate = minLoanRate;
        return this;
    }

    public PrdInfoVOBuilder withMaxLoanRate(BigDecimal maxLoanRate) {
        this.maxLoanRate = maxLoanRate;
        return this;
    }

    public PrdInfoVO build() {
        PrdInfoVO prdInfoVO = new PrdInfoVO();
        prdInfoVO.setPrdId(prdId);
        prdInfoVO.setPrdCode(prdCode);
        prdInfoVO.setPrdVersion(prdVersion);
        prdInfoVO.setPage(page);
        prdInfoVO.setSize(size);
        prdInfoVO.setLegalOrgCode(legalOrgCode);
        prdInfoVO.setTotal(total);
        prdInfoVO.setLoginUserId(loginUserId);
        prdInfoVO.setLegalOrgCodeName(legalOrgCodeName);
        prdInfoVO.setLoginUserOrgCode(loginUserOrgCode);
        prdInfoVO.setPrdFilDir(prdFilDir);
        prdInfoVO.setLoginUserLeageOrgCode(loginUserLeageOrgCode);
        prdInfoVO.setPrdSelDir(prdSelDir);
        prdInfoVO.setLoginUserOrgLocation(loginUserOrgLocation);
        prdInfoVO.setPrdCodebyBaseInfo(prdCodebyBaseInfo);
        prdInfoVO.setPrdThlDri(prdThlDri);
        prdInfoVO.setPrdName(prdName);
        prdInfoVO.setPrdCoefficient(prdCoefficient);
        prdInfoVO.setPrdDesc(prdDesc);
        prdInfoVO.setEffictiveDate(effictiveDate);
        prdInfoVO.setExpiryDate(expiryDate);
        prdInfoVO.setCrdAprvMinAmt(crdAprvMinAmt);
        prdInfoVO.setCrdAprvMaxAmt(crdAprvMaxAmt);
        prdInfoVO.setLoanAppMinAmt(loanAppMinAmt);
        prdInfoVO.setLoanAppMaxAmt(loanAppMaxAmt);
        prdInfoVO.setLoanMaxAmtBalance(loanMaxAmtBalance);
        prdInfoVO.setCyclicWay(cyclicWay);
        prdInfoVO.setCreditTerm(creditTerm);
        prdInfoVO.setRepayWay(repayWay);
        prdInfoVO.setInteDay(inteDay);
        prdInfoVO.setRepayDay(repayDay);
        prdInfoVO.setOverdueInteUpRat(overdueInteUpRat);
        prdInfoVO.setEmbeInteUpRatio(embeInteUpRatio);
        prdInfoVO.setLoanUseType(loanUseType);
        prdInfoVO.setAllowAmount(allowAmount);
        prdInfoVO.setWheAgr(wheAgr);
        prdInfoVO.setLmtTerm(lmtTerm);
        prdInfoVO.setContTemplateId(contTemplateId);
        prdInfoVO.setModContFormId(modContFormId);
        prdInfoVO.setCreditFormId(creditFormId);
        prdInfoVO.setRateSchemeId(rateSchemeId);
        prdInfoVO.setEleNucFormId(eleNucFormId);
        prdInfoVO.setCrdApprFlowId(crdApprFlowId);
        prdInfoVO.setCrdMeaMedolId(crdMeaMedolId);
        prdInfoVO.setAmtApprFlowId(amtApprFlowId);
        prdInfoVO.setAmtMeaMedolId(amtMeaMedolId);
        prdInfoVO.setCreateTime(createTime);
        prdInfoVO.setCreateUser(createUser);
        prdInfoVO.setUserName(userName);
        prdInfoVO.setLastUpdateUser(lastUpdateUser);
        prdInfoVO.setLastUpdateTime(lastUpdateTime);
        prdInfoVO.setGuarWay(guarWay);
        prdInfoVO.setPrdSort(prdSort);
        prdInfoVO.setPrdStatus(prdStatus);
        prdInfoVO.setCurrencyOpt(currencyOpt);
        prdInfoVO.setCreditTermUnit(creditTermUnit);
        prdInfoVO.setRepayCycle(repayCycle);
        prdInfoVO.setOverdueDefInte(overdueDefInte);
        prdInfoVO.setEmbeDefInte(embeDefInte);
        prdInfoVO.setLoanUseGenere(loanUseGenere);
        prdInfoVO.setLmtTermUnit(lmtTermUnit);
        prdInfoVO.setRateAdjustType(rateAdjustType);
        prdInfoVO.setRepayCycleType(repayCycleType);
        prdInfoVO.setRepayDayType(repayDayType);
        prdInfoVO.setIsAlongLoan(isAlongLoan);
        prdInfoVO.setIsUpload(isUpload);
        prdInfoVO.setRateSchemeDetail(rateSchemeDetail);
        prdInfoVO.setListContTempInfo(listContTempInfo);
        prdInfoVO.setListRateSchemeDetail(listRateSchemeDetail);
        prdInfoVO.setListTelVerifGrpDtl(listTelVerifGrpDtl);
        prdInfoVO.setListTelVerifTplVO(listTelVerifTplVO);
        prdInfoVO.setListPrdRuleRelVO(listPrdRuleRelVO);
        prdInfoVO.setContTemplateName(contTemplateName);
        prdInfoVO.setRateSchemeName(rateSchemeName);
        prdInfoVO.setEleNucFormName(eleNucFormName);
        prdInfoVO.setCrdApprFlowName(crdApprFlowName);
        prdInfoVO.setCrdMeaMedolName(crdMeaMedolName);
        prdInfoVO.setOrgCode(orgCode);
        prdInfoVO.setLimitAmt(limitAmt);
        prdInfoVO.setLoanSort(loanSort);
        prdInfoVO.setPrdType(prdType);
        prdInfoVO.setMinLoanTerm(minLoanTerm);
        prdInfoVO.setMaxLoanTerm(maxLoanTerm);
        prdInfoVO.setLoanIntRate(loanIntRate);
        prdInfoVO.setPayWay(payWay);
        prdInfoVO.setZxOpId(zxOpId);
        prdInfoVO.setCooprCode(cooprCode);
        prdInfoVO.setCooprName(cooprName);
        prdInfoVO.setCaseCode(caseCode);
        prdInfoVO.setCaseName(caseName);
        prdInfoVO.setOperateAgency(operateAgency);
        prdInfoVO.setLoanCate(loanCate);
        prdInfoVO.setMinLoanRate(minLoanRate);
        prdInfoVO.setMaxLoanRate(maxLoanRate);
        return prdInfoVO;
    }
}
